perm filename SORT.LSP[206,JMC] blob
sn#260596 filedate 1977-01-29 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (DEFUN MERGE (U V) (COND ((NULL U) V) ((NULL V) U)
C00004 ENDMK
Cā;
(DEFUN MERGE (U V) (COND ((NULL U) V) ((NULL V) U)
((LESSP (CAR U) (CAR V)) (CONS (CAR U)
(MERGE (CDR U) V))) (T (CONS (CAR V) (MERGE U(CDR V))))))
(DEFUN SORT1 (U) (SORT11 U NIL))
(DEFUN SORT11 (U V) (COND ((NULL U) (SORT111 NIL V))
(T (SORT11 (CDR U) (SORT112 (LIST (CAR U)) V)))))
(DEFUN SORT112 (U V) (COND ((NULL V) (LIST U))
((NULL (CAR V)) (CONS U (CDR V)))
(T (CONS NIL (SORT112 (MERGE U (CAR V)) (CDR V))))))
(DEFUN SORT111 (U V) (COND ((NULL V) U)
(T (SORT111 (MERGE U (CAR V)) (CDR V)))))
(defun sort2 (u) (sort21 (mapcar '(lambda (x) (list x)) u)))
(defun sort21 (u) (cond ((null u) nil) ((null (cdr u)) (car u))
(t (sort21 (sort211 u)))))
(defun sort211 (u) (cond ((or (null u) (null (cdr u))) u)
(t (cons (merge (car u) (cadr u)) (sort211 (cddr u))))))